Processing the Results of Multiple Search Queries in a Mapping Application

ABSTRACT

A response to a first query related to a geographic area, and search results responsive to a second query related to the geographic area, are received from a server system. A digital map of the geographic is provided via a user interface. A focus is provided to the first query to illustrate the response on the digital map, where the response defines a geographic context. A subset of the search results is identified based on a relationship to the geographic context. The search results in the identified subset are visually emphasized on the digital map relative to the rest of the search results.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/931,792, filed Jun. 28, 2013, titled “Processing the Results ofMultiple Search Queries in a Mapping Application,” which claims priorityto U.S. patent application Ser. No. 13/179,459, filed on Jul. 8, 2011,titled “Displaying Layers of Search Results on a Map,” which claimspriority to U.S. Provisional Application No. 61/362,552, filed on Jul.8, 2010, titled “Displaying Layers of Search Results on a Map,” theentire disclosures of which are hereby expressly incorporated byreference.

TECHNICAL FIELD

This specification relates to digital data processing, and moreparticularly to presenting search results with a geographic map.

BACKGROUND

Individuals can use computers to access mapping websites over theinternet. The mapping websites provide interactive maps for display onthe individuals' computers. Individuals can move the maps, zoom-in onregions of the maps, and view traffic information on the maps. Further,users can submit search queries and, in response, view icons that areplaced on the maps at locations of businesses that are responsive to thesearch queries.

SUMMARY

This document describes techniques, methods, systems, and mechanisms fordisplaying layers of search results on a map. In general, a user of acomputing device can submit multiple search queries to a mappingservice. In response to each of the queries, the mapping service canprovide information to the computing device for displaying a layer ofvisual indicators, where the visual indicators can represent searchresults or geographical contexts. The multiple layers of visualindicators can be overlaid on a display of a map.

A set of graphical user interface elements for manipulating the displayof the layers can accompany the display of the map. For example, eachparticular layer can be associated with a first graphical interfaceelement for toggling a visibility of the visual indicators for theparticular layer. Additionally, each particular layer can be associatedwith a second graphical interface element that provides focus to theparticular layer. A layer that has focus can interact with other layersdifferently than when the layer does not have focus.

For example, providing focus to a layer that defines a geographicalcontext can cause search results, from other layers, that are determinedto be associated with the focused geographical context to appearemphasized in the display or alone as the only search results in thedisplay. Providing focus to a layer that identifies search results cancause those search results from the focused layer that are associatedwith geographical contexts of other visible layers to appear emphasizedor alone as the only search results in the display.

In general, one aspect of the subject matter described in thisspecification can be embodied in one or more computer-readable storagedevices storing instructions that, when executed by one or moreprocessing devices, cause a computing system to perform operations. Theoperations include receiving, from a server system, information that isresponsive to each of multiple distinct search queries, wherein theinformation for each of the search queries identifies a geographicalcontext or includes search results. The operations include displaying,on a geographical map, one or more visual indications of the informationfor each of the search queries. The operations include displaying a userinterface element for each of the search queries, wherein the userinterface element for each of the search queries, when selected by auser, causes removal from the display of the one or more visualindications of the information for the search query that corresponds tothe selected user interface element.

Additional aspects can optionally include one or more of the followingfeatures. The operations can further comprise receiving from the serversystem an identification of a first geographical context that has beendetermined based on content in a first of the search queries, and secondsearch results that have been determined to be responsive to a second ofthe search queries. The operations can further comprise displaying onthe geographical map a visual indication of the first geographicalcontext, and visual indications of a first portion of the second searchresults that have been determined to be geographically relevant to thefirst geographical context. The first geographical context may be aroute between a starting position and an ending position.

The operations can further comprise displaying on the geographical map avisually different style of visual indications of another portion of thesecond search results that have not been determined to be geographicallyrelevant to the first geographical context. The operations can furthercomprise receiving user selection of a first user interface element thatcorresponds to the first search query; and adding to the display, as aconsequence of the user selection of the first user interface element,visual indications of a second portion of the second search results. Theoperations can further comprise receiving, after the user selection ofthe first user interface element, another user selection of the firstuser interface element; and removing from the display, as a consequenceof the another user selection of the first user interface element, thevisual indications of the second portion of the second search results.

The operations can further comprise receiving, from the server system,an identification of a third geographical context that is determinedbased on content in a third of the search queries; receiving userselection of a third user interface element that corresponds to thethird search query; removing from the display, as a consequence of theuser selection of the third user interface element, at least some of thevisual indications of the first portion of the second search results;and adding to the display, as a consequence of the user selection of thethird user interface element, visual indications of a second portion ofthe second search results that have been determined to be geographicallyrelevant to the third geographical context. The operations can furthercomprise receiving, from the server system, an identification of a thirdgeographical context that is based on content in a third of the searchqueries; and displaying, on the geographical map, visual indications ofa second portion of the second search results that have been determinedto be geographically relevant to the third geographical context. Visualindications of a third portion of the third search results are notdisplayed, the third portion of the third search results not having beendetermined to be geographically relevant to the first geographicalcontext and not having been determined to be geographically relevant tothe second geographical context.

The operations can further comprise receiving, from the server system,fourth search results that are responsive to a fourth of the searchqueries; receiving user selection of a user interface element thatcorresponds to the fourth search query; and adding to the display, as aconsequence of receiving user selection of the fourth user interfaceelement, visual indications of a first portion of the fourth searchresults that have been determined to be geographically relevant to thefirst geographical context, and visual indications of a second portionof the fourth search results that have been determined to begeographically relevant to the second geographical context.

Other aspects of the subject matter described in this specification caninclude a method that performs the operations according to theabove-described operations, or a system that includes theabove-described one or more processing devices and the above-describedone or more computer-readable storage devices.

Another aspect of the subject matter described in this specification canbe embodied in a computer-implemented method for displaying searchresults on a map. The method includes receiving, by a server system,multiple distinct search queries that were submitted from a computingdevice. The method includes providing, by the server system and forreceipt by the computing device, information to cause the computingdevice to display on a geographical map a layer of one or more visualindications for each of the search queries, each layer to include avisual indication of a geographical context that is responsive to arespective search query or visual indications of search results that areresponsive to the respective search query. The method includesproviding, by the server system and for receipt by the computing device,information to cause the computing device to display a user interfaceelement for each of the displayed layers, each user interface elementbeing for causing the computing device to remove, upon user selection ofthe respective user interface element, the display of the layer of oneor more visual indications for the search query that corresponds to theselected user interface element.

Additional aspects can optionally include one or more of the followingfeatures. The method can include providing, by the server system and forreceipt by the computing device, information to cause the computingdevice to display on the geographical map (a) a visual indication of afirst geographical context that has been determined based on content ina first of the search queries, and (b) visual indications of a firstportion of second search results that have been determined to begeographically relevant to the first geographical context, the secondsearch results having been determined to be responsive to a second ofthe search queries.

The method can include providing, by the server system and for receiptby the computing device, information for causing the computing device todisplay on the geographical map a visually different style of visualindications of another portion of the second search results that havenot been determined to be geographically relevant to the firstgeographical context. The method can include providing, by the serversystem and for receipt by the computing device, information for causingthe computing device to add to the display of the geographical map, as aconsequence of the computing device receiving user selection of a firstuser interface element that corresponds to the first search query,visual indications of a second portion of the second search results, andremove from the display of the geographical map, as a consequence of thecomputing device receiving another user selection of the first userinterface element, the visual indications of the second portion of thesecond search results.

Other aspects of the subject matter described in this specification caninclude corresponding computer-readable storage devices storinginstructions that, when executed by one or more processing devices,perform operations according to the above-described methods. Otherembodiments may include systems and apparatus that include the describedcomputer-readable storage devices and that are configured to execute theoperations using one or more processing devices.

Another set of aspects of the subject matter described in thisspecification are described below.

In general, one aspect of the subject matter described in thisspecification can be embodied in a computer-implemented method ofdisplaying search results on a map. The method includes receiving, by acomputing device, user input submitting multiple distinct searchqueries, and providing the search queries to a server system that isremote from the computing device. The method includes receiving, by thecomputing device and from the server system for each particular searchquery of the search queries, information that is responsive to theparticular search query. The information for the particular search query(i) identifies a geographical context, or (ii) includes search results.The method includes displaying for each particular search query, by thecomputing device and on a geographical map, one or more visualindications of the information for the particular search query. Themethod includes displaying, by the computing device and for each of atleast two of the search queries, a user interface element thatcorresponds to the search query and that, when selected by a user,causes the computing device to remove the display of the one or morevisual indications of the information that corresponds to the selecteduser interface element.

Another aspect of the subject matter described in this specification canbe embodied in a computer-implemented method for displaying searchresults on a map. The method includes receiving, by a server system andfrom a computing device that is remote to the server system, multipledistinct search queries that were submitted by a user of the computingdevice. The method includes providing, by the server system and to thecomputing device for each particular search query of the search queries,information that is responsive to the particular search query. Theinformation for the particular search query (i) identifies ageographical context, or (ii) includes search results, so as to causethe computing device to: display on a geographical map for eachparticular search query, one or more visual indications of theinformation for the particular search query, and display for each of atleast two of the search queries, a user interface element that, whenselected by a user, causes the computing device to remove the display ofthe one or more visual indications of the information that correspondsto the selected user interface element.

In yet another aspect, the subject matter described in thisspecification can be embodied in a system for displaying search resultson a map. The system includes a mobile device. The mobile device isconfigured to receive user input submitting multiple distinct searchqueries. The mobile device is configured to provide the search queriesto a server system. The mobile device is configured to receive from theserver system determined information that is responsive to eachparticular search query of the search queries. The information for theparticular search query (i) identifies a geographical context, or (ii)includes of search results. The mobile device is configured to displayon a geographical map for each particular search query, one or morevisual indications of the information for the particular search query.The mobile device is configured to display for each of at least two ofthe search queries, a user interface element that, when selected by auser, causes the computing device to remove the display of the one ormore visual indications of the information that corresponds to theselected user interface element. The mobile device is configured toprovide a display of a map of each of the layers and graphical interfaceelements for toggling a display of each layer on or off, and forclustering search results around one or more geographical positions.

The system includes a server system. The server system is configured toreceive the search queries from the mobile device. The server system isconfigured to determine, for each particular search query of the searchqueries the information that is responsive to the particular searchquery. The determined information for the particular search query (i)identifies a geographical context, or (ii) includes search results. Theserver system is configured to provide to the computing device for eachparticular search query, the determined information.

These and other implementations can optionally include one or more ofthe following features. Each particular search query may be input by auser using a keyboard. Each particular search query may be input by auser using a voice input device that includes a microphone. Thecomputing device may receive from the server system an identification ofa first geographical context that the server system has determined basedon content in a first of the search queries. The first geographicalcontext is a first route between a starting position and an endingposition. The computing device may receive from the server system secondsearch results that the server system has determined are responsive to asecond of the queries. The computing device may display on thegeographical map a visual indication of the first route between thefirst position and the second position, and visual indications of aportion of the second search results that have been determined to begeographically relevant to the first route. The computing device maydisplay on the geographical map a visually different style of visualindications of a portion of the second search results that have not beendetermined to be geographically relevant to the first route.

First user selection of a first user interface element that correspondsto the first search query may be received. In response to the first userselection, the visual indication of the first route may be removed fromdisplay. In response to the first user selection, visual indications ofadditional second search results that are not included in the portion ofthe second search results may be displayed. Second user selection of thefirst user interface element may be received. In response to thesecond-user selection, the visual indication of the first route may bere-displayed. In response to the second user selection, the visualindications of the additional second search results may be removed fromdisplay.

The computing device may receive from the server system anidentification of a first geographical context that the server systemhas determined based on content in a first of the queries. The computingdevice may receive from the server system an identification of a secondgeographical context that the server system has determined based oncontent in a second of the search queries. The computing device mayreceive from the server system third search results that the serversystem has determined are responsive to a third of the queries. Thecomputing device may receive from the server system fourth searchresults that the server system has determined are responsive to a fourthof the queries.

User selection of a first interface element that corresponds to thefirst query may be received. In response to the user selection of thefirst interface element, visual indications of a first portion of thethird search results that have been determined to be geographicallyrelevant to the first geographical context may be displayed on the map.In response to the user selection of the first interface element, visualindications of a first portion of the fourth search results that havebeen determined to be geographically relevant to the first geographicalcontext may be displayed on the map.

The first geographical context may not be identified based on content inthe third search query or the fourth search query. User selection of asecond interface element that corresponds to the second query may bereceived. In response to the user selection of the second interfaceelement, visual indications of a second portion of the third searchresults that have been determined to be geographically relevant to thesecond geographical context may be displayed. In response to the userselection of the second interface element, visual indications of asecond portion of the fourth search results that have been determined tobe geographically relevant to the second geographical context may bedisplayed.

The display of the visual indications of the first portion of the thirdsearch results and the display of the visual indications of the firstportion of the fourth search results may be removed from the map an inresponse to the user selection of the second interface element. Userselection of a third interface element that corresponds to the thirdquery may be received. In response to the user selection of the thirdinterface element, visual indications of a first portion of the thirdsearch results that have been determined to be geographically relevantto first geographical context may be displayed. In response to the userselection of the third interface element, visual indications of a secondportion of the third search results that have been determined to begeographically relevant to the second geographical context may bedisplayed. A third portion of the third search results may not bedisplayed. The third portion of the third search results may not includeany of the first portion or second portion of the third search results.

The first geographical context may not be determined based on content inthe third search query or the fourth search query. The third portion ofthe third search results may not be determined to be geographicallyrelevant to the first geographical context and may not be determined tobe geographically relevant to the second geographical context. Userselection of a fourth interface element that corresponds to the fourthquery may be received. In response to the user selection of the fourthinterface element, visual indications of a first portion of the fourthsearch results that have been determined to be geographically relevantto the first geographical context may be displayed. In response to theuser selection of the fourth interface element, visual indications of asecond portion of the fourth search results that have been determined tobe geographically relevant to the second geographical context may bedisplayed. A third portion of the fourth search results is notdisplayed.

In response to the user selection of the fourth interface element, thevisual indications of the first portion of the third search results andthe visual indications of the second portion of the third search resultsmay be removed from display. The visual indications that are displayedon the map in response to the user selection of the third interfaceelement may be displayed without receipt of user-input at the computingdevice subsequent to the user selection of the third interface element.The visual indications that are displayed on the map in response to theuser selection of the fourth interface element may be displayed withoutreceipt of user-input at the computing device subsequent to the userselection of the fourth interface element.

Particular embodiments can be implemented, in certain instances, torealize one or more of the following advantages. A user can viewmultiple layers of search results in a single display of a map. Thedisplay of search results and visual indicators of geographical contextcan be toggled on and off. Applying multiple contexts to a set of searchresults can allow comparisons between the search results that areemphasized for each context. Applying multiple sets of search results toa single context can allow comparisons between the sets of searchresults that are emphasized for the single context.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description and drawings, and fromthe claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a screenshot of an example mapping webpage provided inresponse to the query “Union Square.”

FIG. 2 is a screenshot of an example mapping webpage that is provided inresponse to the query “Golden Gate Park to Bayview Park.”

FIG. 3 is a screenshot of an example mapping webpage that is provided inresponse to the query “pizza,” and leaving focus with the query layer“pizza.”

FIG. 4 is a screenshot of an example mapping webpage that is provided inresponse to the query “gas station,” and providing focus to the “drivingdirections” query layer.

FIG. 5A is a chart illustrating example interactions between searchquery layers.

FIG. 5B illustrates another graphical scheme for the layers toolbar.

FIG. 6 illustrates an example system for displaying layers of searchresults on a map.

FIG. 7 is a conceptual diagram of an example system that can be used toimplement the systems and methods described in this document.

FIG. 8 is a block diagram of example computing devices that can be usedto implement the systems and methods described in this document, aseither a client or as a server or plurality of servers.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This document generally describes displaying layers of search results ona map. A user of an internet web mapping service can submit to the webmapping service a series of queries that include content related tovarious geographic locations, business, and services. Visual identifiersof search results or geographical locations that the mapping service hasdetermined are responsive to the search queries can be successivelylayered on a map for display to the user. The user can interact withuser interface controls that accompany the display of the map in orderto remove layers that correspond to specific queries. Also, the user caninteract with user interface controls to modify interactions between thelayers of the map.

For example, a user can submit a first query that identifies aparticular shopping mall, a second query that requests drivingdirections from the user's house to his friend's house, a third querythat requests the locations of gas stations, and a fourth query thatrequests the locations of bike shops. In response to submitting thequeries, a map can be presented on a display of a computing device,where the map includes visual identifiers of information that isresponsive to each of the search queries. For example, a blue icon canappear at a location of the mall, a green line can appear along a routefrom the user's house to his friend's house, purple icons can appear atlocations of gas stations, and yellow icons can appear at locations ofbike shops.

Each visual representation of information for a particular search querycan be conceptually understood to be a “layer” that is overlaid the map.The webpage that is displayed to the user can include, for eachsubmitted search query, a graphical interface element for “turning on”and “turning off” the corresponding layer of information. For example,the user can turn off the “bike shop” layer in order to view just themall icon, the route line, and the gas station icons. The user can laterturn the bike shop layer back on using the same or a different graphicalinterface element.

Some of the search queries can allow a determination of a geographicalcontext. A geographical context can be a specific location (e.g.,geographical coordinates), range of locations (e.g., a series oflocations that represents a route), or region (e.g., a region that isbounded by a city boundary). The geographical context can be determinedbased on user-supplied content of a query.

For example, a query that identifies a starting street address and anending street address can be determined by a server system to identify ageographical context that is a route between the two addresses. A querythat identifies a city name can be determined by the server system toidentify a geographical context that is a region corresponding to thecity, or a specific location at a downtown region of the city. A querythat includes a name of a particular mall can be determined by a serversystem to identify a geographical context that is a location of themall.

Search queries from which a context can be determined can be referred toas unambiguous search results. In some examples, search queries areconsidered unambiguous search results when a single context can bedetermined from the content of the search query. For example, a searchquery for a department store can not be considered unambiguous becausethe search can return the locations of multiple department stores.

The determination of whether a search query is associated with a singlecontext can be determined based on how many visual indicators aredisplayed or to be displayed on a map for the query. For example, aserver system can determine that multiple geographical contexts can beassociated with the search query “City of Burlington.” The serversystem, however, can determine that a single of the geographicalcontexts is relevant to a user of the computing device (e.g., based on apopularity of a particular city, a user history of viewing informationabout the city, a presently-viewed or based on a user-supplieddisambiguation for the city).

An indication of the single geographical context can be provided to theuser's computing device, and a single visual indication of thegeographical context can be displayed to the user. Thus, even thoughmultiple geographical contexts can be determined to be associated with asearch query, a single one of the geographical contexts may be providedfor display to the user in response to the query.

On the other hand, some search results can not be associated with aparticular geographical context. For example, there are many gasstations around the world, and thus a search query for “gas stations”can not identify a particular geographical context to which the queryshould apply. In other words, the server system can not determine asingle gas station to which the user of the computing device isinterested in. Such search queries can be referred to as “ambiguous”search queries. Thus, search results for the “gas station” query can beprovided to the computing device based on a context that was not definedby the user input query “gas station.” The context can be a defaultcontext that is a “home” location of the user, or a current view of amap.

A user can provide a series of search queries to a mapping service,where some of the queries are ambiguous search queries and some of thesearch queries are unambiguous search queries. The user can selectgraphical interface elements to further refine the context that isapplied to ambiguous search queries. For example, the user can use thegraphical interface elements to selectively apply geographical contextsfrom the unambiguous queries to the ambiguous queries.

A user can provide focus to a search query layer that is unambiguous,and thus has a specific geographical context, so that ambiguous searchresults from other search query layers that are geographically near thecontext can be emphasized. Referencing the above example, the user canselect a graphical interface element that corresponds to the drivingroute in order to cause the map to emphasize icons for gas stations andbike shops that are along the driving route. In response to selection ofthe graphical interface element, icons for gas stations and bike shopsthat are not near the driving route but are within the displayed regionfor the map can be removed from display, or can be displayed with adifferent shade, size, or style. Similarly, the user can select agraphical interface element that corresponds to the mall search query inorder to cause the map to emphasize icons for gas stations and bikeshops that are located near the mall. The icons that were previouslyemphasized as being along the driving route can disappear or bedeemphasized.

In another example, the user can provide focus to a search query layerthat is ambiguous and thus does not have a specific geographicalcontext. Providing focus to the ambiguous search query layer can causethe map to emphasize icons for search results of the focused layer thatare near a geographical context of other, unambiguous layers. Forexample, a user can select a graphical interface element thatcorresponds to the bike shop query in order to provide focus to the bikeshop query layer. In response, the map can remove from display ordeemphasize those icons that are for bike shop search results that arenot near the mall or that are not along the driving route. Should theuser “hide” one of the search query layers that is unambiguous (e.g.,the “mall” layer), the mall icon can disappear and the icons for bikeshops that are near the mall can disappear from display or bedeemphasized.

In various examples, submission by a user of a new query, and thusaddition of a new query layer to the map, can cause a visibility of oneor more query layers for previously submitted queries to “turn off.” Forexample, if a user submits two ambiguous queries in a row, thevisibility of the query layer for the first ambiguous query canautomatically “turn off” in response to displaying a query layer for thesecond ambiguous query. On the other hand, if an ambiguous query issubmitted after an unambiguous query, the query layer for the ambiguousquery can be displayed along with the query layer for the unambiguousquery. Indeed, the unambiguous query can provide a geographical contextfor the ambiguous query.

As an illustration, a query for “gas station” can follow a query for“pizza.” In response to submission of the “gas station” query, thesearch results that were displayed on the map for the “pizza” query canbe removed from display on the map. On the other hand, the query “gasstation” can follow a query for “111 8th ave nyc.” In response tosubmission of the “gas station” query, one or more graphical interfaceelements for the “111 8th ave nyc” query can remain on the map, because“111 8th ave nyc” can be determined to be an unambiguous query. Invarious examples, a visibility of a first of two unambiguous queries canturn off in response to receipt of the second unambiguous query. Invarious examples, all other query layers of a same type (i.e.,unambiguous or ambiguous) of a most-recently received query are turnedoff in response to receiving the most-recently received query.

In various examples, an unambiguous layer can include user-definedcontent. For example, a user can submit user input that causes a layerof “favorited” pins to appear for display on the map. The user can haveidentified, on various map displays over the last few months, the user'sfavorite places by selecting “stars” on search results that the userlikes. Thus, the user can display a layer of these favorited placed onthe map. The favorited places can each supply a geographical context.

Similarly, a user can create a layer of user-defined places or regions,for example, by dropping pins on a map, placing user defined lines andshapes on a map, or modifying a driving directions route and saving theroute. Each of the user-defined places or regions can supply ageographical context. Thus, when a user has entered a search query foran unambiguous query (e.g., “Pizza”), the user can submit user input torender visible a layer of such user-defined places or regions so thatthe “Pizza” places that are near the user-defined places or regions areemphasized on the display or appear in distinction to “Pizza” placesthat are not near the user-defined places or regions.

In various examples, a query layer for an unambiguous query caninfluence a content of a query layer for another unambiguous query. Suchan influence can occur when the second unambiguous query is associatedwith a geographical context, but can be modified. For example, a firstquery layer can specify several blocks and closed streets in a citywhere a festival is taking place. A second query for driving directionscan be submitted. The determined route for the driving directions can bemodified based on the festival query layer (e.g., to either avoid thefestival or route through the festival). Thus, a user can save querylayers for various events and road closures, and can selectively applythe query layers to a driving route to see how the driving route isimpacted by the events and road closures.

An illustration of mechanisms for displaying layers of search results ona map is provided with reference to FIGS. 1-4. Suppose that user Susanis sitting in a coffee shop near Union Square, San Francisco. Susan isvisiting San Francisco for the day and has her laptop in front of her onthe table in order to figure out what to do with her day. Susan wouldlike to visit two parks before the end of the day, Golden Gate Park andBayview Park. A girl near Susan told Susan how to get to Golden GatePark from Union Square, but did not know where Bayview Park was. Thus,Susan needs directions from Golden Gate Park to Bayview Park. Susan isalso hungry, and would like to swing by a pizza place at sometime duringthe day. Also, Susan knows that her fuel tank is almost empty and thatshe should stop at a gas station before driving north to visit a friendin Vancouver. Susan knows that she can accomplish all of these taskswith a single session of a web-based mapping service. An exampleillustration of Susan using her laptop computer to accomplish thesetasks is hereafter provided with reference to FIGS. 1-4.

Susan uses her laptop to launch a web browser application program, andtypes in the Uniform Resource Locator (URL) for a web-based mappingservice. Susan's laptop sends a Hypertext Transfer Protocol (HTTP)request over the internet to a server system associated with theweb-based mapping service. The server system returns resources fordisplaying a web page for the mapping service.

Susan selects a query input box on the displayed webpage, types in thequery “Union Square, San Francisco, Calif.,” and selects a “Search Maps”graphical interface element. Susan's laptop sends an HTTP request withthe search query to the server system. The server system ranks multiplesearch results, from among a datastore of search results that identifyvenues and geographical places, based on the query. A single searchresult identifying a plaza in San Francisco is determined by the serversystem to be responsive to Susan's query and is returned to Susan'slaptop computer. The server can identify other search results that areresponsive to Susan's query, but the particular search result that wasreturned to Susan's laptop can exceed a threshold of relevance or beassociated with a significantly higher relevance score than other of thesearch results.

The server system returns to Susan's laptop a set of resources forrendering the web page displayed in FIG. 1. The resources can includeinformation that identifies the single search result (along with ageographical location of the single search result), map tiles fordisplaying a portion of a map around the geographical location, andadditional content for rendering the webpage.

FIG. 1 is a screenshot of a mapping webpage provided in response to thequery “Union Square.” The webpage displays, in a viewport portion 102 ofthe web browser, a map of San Francisco. A single pin 154 is displayedon the map of San Francisco at a geographical location of “UnionSquare.” The query input text box 106 displays the search query thatSusan previously entered. A left pane 108 displays information that isassociated with the single search result for the query “Union Square.”

Susan would like to also know how to get from Golden Gate Park toBayview Park. Thus, Susan selects the query input text box 106, andtypes the query “Golden Gate Park to Bayview Park.” Susan selects the“Search Maps” interface element 110, and the web browser navigates tothe display that is provided in FIG. 2.

FIG. 2 is a screenshot of a mapping webpage that is provided in responseto the query “Golden Gate Park to Bayview Park.” As FIG. 2 illustrates,the pin for Union Square has remained on the map, but is supplemented bya line 252 that designates a route between a starting location pin 256at Golden Gate Park and an ending location pin 258 at Bayview Park. Theinformation on Union Square in the left pane 208 has been replaced withdetails on the route between the starting location pin 256 and theending location pin 258.

Additionally, at a bottom of the left pane 208 is a layers toolbar 218.The layers toolbar 218 includes, for each of the “Union Square” and“Golden Gate Park to Bayview Park” search queries, a user selectablecheckbox 212 and text 214 identifying the search query. Also, a smallgraphical interface element 216 identifies a color of the graphicalinterface elements on the map that are associated with the “UnionSquare” query.

The checkboxes allow Susan to identify which of the layers in thetoolbar 218 are “visible” in the map viewport 202. For example, if Susande-selects the “Union Square” checkbox, the pin 254 that identifies thelocation of Union Square can disappear from the map. Should Susanre-select the checkbox, the pin 254 can reappear. Similarly, Susan canselect the checkbox for the “driving directions” search query to togglevisibility of the line 252 and the pins 256 and 258.

Further, Susan can select the text 214 for either of the “drivingdirections” and “Union Square” queries to set a “focus” of the mappingweb page. In this example, the “driving directions” query layer hasfocus, as illustrated by the bold characteristics of the text in toolbar218. Thus, the left pane 208 displays information that is responsive tothe “driving directions” query. If Susan selected the text for the“Union Square” query (changing the focus to the “Union Square” querylayer), the content in the left pane 108 can change to the content thatis displayed in the left pane of FIG. 1.

Susan would like to stop at a pizza place that is either around UnionSquare or along the drive from Golden Gate Park to Bayview Park. Thus,Susan enters the query “pizza” in the query input text box 206 andselects the search maps graphical interface element 210. In response,the web browser navigates to the display that is provided in FIG. 3.

FIG. 3 is a screenshot of a mapping webpage that is provided in responseto the query “pizza.” Focus is provided to the query layer “pizza.” Thepin 354 for Union Square has remained on the map along with the pins 356and 358 and line 352 for the driving directions. Multiple additionalgraphical interface elements have appeared for display on map. Forexample, multiple pins (e.g., pins 360 a and 360 b) represent locationsthat are associated with various search results that are responsive tothe pizza query. Also multiple markers (e.g., markers 362 a and 362 b)represent various pizza search results that are not scored as highly asthe pizza search results that are identified with the pins. A set ofgraphical interface elements that represent the “pizza” query layer havebeen added to the layers toolbar 318. The content in the left pane 308has been replaced with content that identifies information for at leastsome of the “pizza” pins that have been added to the map 302.

As illustrated in FIG. 3, the pins 360 on map 302 are grouped around thedriving route 352 and the Union Square pin 354, even though there aremany other pizza place search results (as illustrated by the markers362). The pins 360 emphasize those pizza search results that arerelevant to the context of the other layers that are visible on the map302. In other words, the search query “pizza” is an ambiguous searchquery that is not itself associated with a single geographical context,and thus can borrow context from other layers. Accordingly, pizza searchresults that are geographically near the driving route or aregeographically near Union Square can be weighted more heavily.

For example, the mapping service server system can assign a score toeach of the search queries based on various factors. Example factors caninclude how often terms in the query appear in content that is storedfor the search result, and how often users select a search result inresponse to entering the search query. The mapping service server systemor Susan's laptop can weight the score for each of multiple searchresults that are associated with a present view of the map based on adistance between the search result and a geographical context of one ormore other layers. For example, a distance between a search results anda route may be a number that identifies a conceptual distance between alocation associated with the search result and a closest of a continuumof locations in the route. The distance may be as the bird flies orbased on navigable roadways or paths. Geographical contexts of differentlayers can weight search results differently based on how recent aparticular layer had focus.

After the scores for each of the search results have been weighted,those search results that are associated with scores that exceed athreshold, or that are included in a group of the highest scoring “N”search results can be displayed on the map 302 more prominently than theother search results (e.g., as the pins 360). In some examples, thehigh-ranking search results are displayed exclusively (e.g., the markers362 can not appear alongside the pins 360 for a layer).

Susan can interact with the layers toolbar 318 to modify interactionsbetween the layers of the map 302. For example, if Susan de-selects thecheckbox 364 for the “Union Square” layer, the pin 354 that identifiesthe location of Union Square can disappear from the map. Further, theUnion Square geographical context can no longer be used to weight“pizza” search results. Thus, a score for each of the pizza searchresults 360 c-e that are clustered around the Union Square pin 354 canbe reduced, and each of the search results 360 c-e can disappear fromdisplay in the map 302, or be replaced by circular markers (e.g., amarker 362). Further, pizza search results that are close the route 352can change from a marker 362 to a pin 360 as more pins can become“available” for placement by the route 352. The content of the left pane308 can similarly change to display content for each of a new set ofhighest ranking pins.

Should Susan further deselect the checkbox 368 for the drivingdirections layer (so that no query layers with a context are visible),the route 352 and the pins 356 and 358 can be removed from the mapdisplay. In response, the pizza search results can no longer be weightedbased on a distance from the route 352, but can be evaluated based on arelevance to the geographical region displayed within the map viewport302. Thus, the geographical context for the pizza search results is nolonger provided based on another search query layer, but is insteadprovided based on a view of the map. Thus, the display in FIG. 3 canchange so that the pizza pins disperse across the map of San Francisco.

Susan also needs to get gas at some point during the day, and thus typesthe query “gas station” into the search query text box 306 and selectsthe search maps graphical interface element 310. In response, a set ofpins and markers for gas stations are overlaid on the map that isdepicted in FIG. 3. (This view of the browser is not provided in afigure.) The gas station query layer can receive focus upon submissionof the query. Because the server system can be unable to determine aspecific geographical context based on the query “gas station,” thecontext for placement of pins can be defined by other layers that arevisible. Thus, the gas station pins can cluster around the driving route352 and the Union Square pin 354. Other gas stations that are not asgeographically relevant to the driving route or to Union Square canappear as circular markers.

In some examples, each of the pizza markers and pins can provide ageographical context for the gas stations. For example, where a gasstation is particularly close to a pizza place, the search result forthe gas station can be scored more heavily and a pin can appear insteadof a marker. In other examples, pizza markers do not provide ageographical context because the query “pizza” is an ambiguous query. Insome examples, the pizza pins 360 are changed to small circular markers362 in response to the gas station query (and focus being changed to thegas station query layer).

Susan suddenly gets a call from a friend, whom is waiting for Susan atGolden Gate Park. Susan knows that she will upset her friend if she haspizza before she drives from Union Square to Golden Gate Park, or evenif she stops for gas before getting to Golden Gate Park. Still, Susanwill need to get food and gas on some point on the drive over to BayviewPark. Thus, Susan would like the mapping service webpage to display thepizza places and gas stations that are along the driving route fromGolden Gate Park to Bayview Park. Accordingly, Susan selects theinterface element 466 for providing focus to the driving directionsquery layer. In response, the display in FIG. 4 can be provided toSusan.

FIG. 4 is a screenshot of a mapping webpage that is provided in responseto the query “gas station,” and a user providing focus to the “drivingdirections” query layer. As illustrated in FIG. 4, both the pizza andgas station search results that are geographically near the drivingroute are emphasized with pins. In other words, when a query layer thatis associated with an unambiguous query (e.g., a query from which ageographical context can be determined) has focus, search results formultiple other layers that are associated with an ambiguous query can bere-scored to weight more prominently those search results that are nearthe geographical context of the focused layer. Further, the left pane408 can display content for a combination of pizza and gas stationsearch results.

In summary, the layers toolbar 418 has been populated with multiplesearch query layers that have their own context (e.g., the Union Squareand driving directions layers), and multiple search query layers that donot have their own context (e.g., the gas station and pizza layers).Providing focus to a layer that does not have its own context can resultin search results for the layer “spreading out” to cluster around thegeographical context for those layers that have context and that arevisible. Providing focus to a layer that has its own context can resultin search results for layers that do not have their own context“grouping” around the geographical context for the focused layer.

In various examples, the addition and removal of graphical interfaceelements from the map are performed in response to a user selection of agraphical interface element in the layers toolbar, and without anyuser-input subsequent to the user selection of the graphical interfaceelement in the layers toolbar. For example, de-selection of the checkbox368 (e.g., by clicking with a mouse on the checkbox 368) for the drivingdirection query layer in FIG. 3 can cause the computing device to removefrom the display of the map 302 the route 352 and the pins 356 and 358without user-input subsequent to de-selection of the checkbox 368.Similarly, the addition and removal of pins to a map in response to auser providing focus to a different query layer can be performed withoutadditional user input beyond the user input to provide focus to thedifferent query layer (e.g., by selection of text in the layerstoolbar).

FIG. 5A is a chart illustrating example interactions between four searchquery layers. The chart describes interactions between layers for eachof four search queries, for example, the “gas station,” “pizza,”“driving directions to Bayfield park,” and “Union Square” queries, asillustrated in FIG. 5. The interactions are provided after a user hasentered all four search query layers.

In box 502, Susan has provided focus to the gas station query layer, forexample, by selecting the words “gas station” in the layers toolbar 418.In response, the gas station search results in the map 402 that are neargraphical interface elements for other layers are emphasized. Forexample, gas stations that are along the driving route or that are nearUnion Square can be emphasized. As described above, gas stations thatare near pizza places can optionally be emphasized.

In various examples, Susan can remove the visibility of both the drivingdirections query layer and the Union Square query layer by de-selectingthe checkboxes 412 that accompany each layer. In response, the searchresults that are emphasized in the map can be those search results thatare highest scoring without regard to the driving directions or UnionSquare context. In various examples, repeated user selection of the gasstation search result layer (e.g., repeated selection of the text “gasstation” in the layers toolbar 418) can cause the map 402 to togglebetween a non-context-specific display of gas stations (e.g., as if thedriving directions and Union Square layers were not visible), and acontext-specific display of gas stations (e.g., as when the drivingdirections and Union Square layers are visible).

In box 504, Susan has provided focus to the pizza query layer. Inresponse, the pizza search results that are near the driving route andthat are near Union Square can be emphasized, similar to the abovedescribed example for the gas station layer.

In box 506, Susan has provided focus to the driving route layer, forexample, by selecting the words “driving directions to Bayview Park” inthe layers toolbar 418. In response, the search results in the map 402that are emphasized are those search results that are near the graphicalinterface elements for the driving directions layer. For example, pizzaplaces and gas stations that are along the driving route can beemphasized.

In various examples, Susan can remove the visibility of the gas stationsearch query layer by selecting the respective checkbox 412 in thelayers toolbar 418. In response, the pins and markers that represent gasstation search results can be removed from the display of map 502.

In box 508, Susan has provided focus to the Union Square query layer. Inresponse, the gas station and pizza search results that are near theUnion Square pin 454 can be emphasized, similar to the above describedexample for the driving route layer.

FIG. 5B illustrates another graphical scheme for the layers toolbar. Inthis graphical scheme, the first graphical display 550 is displayed to auser instead of the buttons 490 that are illustrated in FIG. 4. A usermay click on the “Satellite” graphical interface element 551 in order tochange the present view of the displayed geographical area from a mapview to a satellite view. In further response to such a selection, the“Satellite” graphical interface element may change to a “Maps” graphicalinterface element. Selection of the “Traffic” graphical interfaceelement 552 causes the present view of the displayed geographical areato include indications of vehicle traffic.

The user's computing system presents the second graphical display 560 inresponse to the user performing a mouse-over selection of any componentof the first graphical display 550. The second graphical display showsan “Earth” graphical interface element 556 which, when selected, causesthe computing system to present a view of the displayed geographicalarea using an “Earth” virtual globe mapping display. The secondgraphical display 560 also includes a layers toolbar 553 section of thesecond graphical display 560. In this illustration, the layers toolbar553 shows that the user has previously entered a single search query for“Union Square, San Francisco, Calif.”

The user may subsequently enter multiple additional search queries, asdescribed above with reference to FIGS. 1-4. The third graphical display570 shows the layers toolbar 553 after the user has entered suchmultiple additional search queries. Some of the layers in the layerstoolbar 553 include an “x” graphical interface element 554 that, whenselected, causes the computing system to remove the selected layer fromthe layers toolbar 553 and also remove from the displayed geographicalarea any associated graphical interface elements (e.g., any combinationof pins, markers, and lines that are associated with the selectedlayer).

The visibility of layers (as discussed above) is identified by checkmarks (e.g., check mark 555). A check mark indicates that the layer ispresently being displayed on the map, while no check mark indicates thatthe layer is not presently being displayed on the map. A user can make anon-visible layer visible by selecting the region of the layers toolbar553 that identifies the layer (e.g., the region of the layers toolbar553 that lies includes the identifying text and lies within thehorizontal lines that bound the identifying text).

A user may provide focus to a layer by selecting an already visiblelayer an additional time. For example, the fourth graphical display 580identifies the “Gas Station” layer with bold text 554. As such, the “GasStation” layer has focus. A user may switch focus to another layer byselecting the other layer (visible or non-visible). Accordingly,selecting a non-visible layer (e.g., with a mouse click or a finger tap)renders the layer visible and provides focus to the layer. Selecting avisible layer that does not have focus causes that layer to obtainfocus. Selecting a visible layer that has focus an additional timerenders the layer non-visible and removes focus from the layer. It ispossible that no layers have focus.

FIG. 6 illustrates a system for displaying layers of search results on amap. Mobile computing device 602 includes a web browser 604 that submitsa search query 606 to a server system 608. A local search engine 610 atthe server system receives the query and returns a geographical context620 and map tiles 618 that are responsive to the query. The web browser604 submits a second search query 630, and in response, receives searchresults 632.

A GUI generator 622 generates a display that includes a map view port624, a focus panel 626, and a layer toolbar 628. A layering system 634is stored at the mobile computing device 602, the server system 608, ora combination of both. The map layering system 634 stores, for each ofthe search queries, information that is responsive to the search queryin a layer storage 636. The layering system 634 includes a search resultfilter 642 for selecting subsets of search results to display in the mapviewport 624 based on one or more geographical contexts.

In more detail, an individual can use the mobile computing device 602 toaccess a mapping service. For example, a user of the mobile computingdevice can use the web browser to visit a website for the mappingservice. The website can provide the user with an option for submittinga search query to the server system by typing or speaking a search queryinto the mobile computing device 602. The search query 606 can betransmitted over a network (e.g., the internet) to the server system.

The search query 606 that is received by the server system 608 can beprovided to a local search engine 610. The local search engine canreceive search queries and return information that is responsive to thesearch queries. For example, if the search query is determined by thelocal search engine to be for a geographical place, the local searchengine can identify a geographical location for the place, and provideto the computing device 602 map tiles 618 for an area that includes thegeographical place, along with an indication of the geographical place.If the search query is determined to be for directions between twoplaces, the route determiner 614 can determine a route between the twoplaces, and supply information identifying the route to the mobilecomputing device 602. In some examples, a context identifier 612determines a geographical context that is associated with a searchquery.

In this example, the server system has determined particular map tiles618 and a geographical context 620 that are responsive to the searchquery 606, and returns this information to the mobile computing device602. The context 620 and map tiles 618 can be included in a set ofresources that are returned as responsive to the search query 606.

The GUI generator 622 can generate a display of a webpage based on thereturned resources. For example, the GUI generator 622 can display thewebpage illustrated in FIG. 1. The displayed webpage can include a mapview port 624 (e.g., the map viewport 102), and a focus panel 626 (e.g.,the left pane 108).

A user of the mobile computing device 602 can submit a second searchquery 630, for example, using the query text input box 106 that isillustrated in FIG. 1. The local search engine 610 can determinemultiple search results that are responsive to the second search query.The second search query 630 may not include user-generated content thatis sufficient for the context identifier 612 to identify a geographicalcontext that is relevant to the query. For example, the query can beassociated with search results that are associated with venues fromacross a broad geographical region.

Thus, the query 630 can be an “ambiguous” query (described earlier inthis document). Accordingly, the search results 632 that are returned tothe computing device 502 can be determined based on context that isassociated with a present view of the map view port 624 region of theweb browser.

The computing device can place indicators for at least a portion of thereceived search results 632 on a region of the map that is beingdisplayed in the map view port 624. Additionally, because the mapviewport 624 can display, on the map, visual indicators that correspondto more than one successive query, the GUI generator 622 can display alayer selector (e.g., the layer toolbar 218) that enables a user of themobile computing device to modify which of multiple layers aredisplayed, and how the layers interact.

A layering system 634 includes a layer storage 636 that includesinformation for each of multiple search query layers. For example, thelayer storage can include a geographical context 638 that was identifiedas responsive to the first search query 606. The layer storage caninclude information identifying the search results 640 that wereidentified as responsive to the second search query 630.

Based on user interaction with the layer toolbar 628, the map viewport624 can display a subset of the search results 640 that is determinedbased on the context 638. Thus, a search result filter 642 can apply thecontext 638 to the set of search results 640 in order to select a subsetof the search results that are relevant to the context 638 (e.g., thesearch results that are geographically near the context 638). Theselected subset of search results can be emphasized in the map viewport624 (e.g., appear differently than other search results of a same searchquery layer), or can appear exclusively in the map viewport 624 (e.g.,appear as the only search results for the search query layer).

The search results filter 642 can select the subset of search resultsbased on distance of the search results from the context 538. In a firstexample, the search results that are within a predetermined distance ofthe context can be selected as the subset. In another example, thesearch results that are within a predetermined distance of the contextcan have their respective scores weighted more heavily. In yet anotherexample, a weighting of each search result can be based on a distancefrom the context. For example, the farther away a search result is fromthe context, the less heavily it will be weighted (e.g., have its scoreproportionally modified).

In various examples, layers from successive search queries are added tothe layer toolbar 628 (and the layer storage 636) until a mappingservice browsing session is terminated. A mapping service browsingsession can terminate when the user navigates to a website that is nothosted by the mapping service (e.g., by typing in a URL for the otherwebsite or by selecting a bookmark for the other website). A mappingservice can also end when the user closes the web browser window.

In some examples, layers are stored in association with the user's useraccount, and may not be removed when the user closes the web browser ornavigates to another website. Thus, the user can visit the mappingservice website several weeks later and see a list of layers fromprevious search sessions. The user can be able to remove particularlayers or select a “clear all” button to start a fresh browsing session.

In various examples, a user submits a particular query and is provided adisplay of a map that includes search results for the particular query.The particular query can be identified within a layers toolbar as one ofmultiple layers. The particular query, however, may have been mistypedor included content that otherwise prompts the server system to proposea refined query. The proposed query can be displayed to the user in asame web browser screen that is displaying the map with the searchresults for the particular query.

Should the user select the proposed query, the search results on the mapfor the particular query can be removed from display and replaced with adisplay of search results for the refined query. The identification ofthe particular query within the layers toolbar can be removed, and anidentification of the proposed query can appear in the layers toolbar.Thus, if a user incorrectly types a query and later corrects hismistake, the incorrect query can be automatically removed from displayin the layers toolbar and the map so that the toolbar and map displayare not polluted by the incorrect query.

Referring now to FIG. 7, a conceptual diagram of a system that can beused to implement the systems and methods described in this document isillustrated. Mobile computing device 710 can wirelessly communicate withbase station 740, which can provide the mobile computing device wirelessaccess to numerous services 760 through a network 750.

In this illustration, the mobile computing device 710 is depicted as ahandheld mobile telephone (e.g., a smartphone or an applicationtelephone) that includes a touchscreen display device 712 for presentingcontent to a user of the mobile computing device 710. The mobilecomputing device 710 includes various input devices (e.g., keyboard 714and touchscreen display device 712) for receiving user-input thatinfluences the operation of the mobile computing device 710. In furtherimplementations, the mobile computing device 710 can be a laptopcomputer, a tablet computer, a personal digital assistant, an embeddedsystem (e.g., a car navigation system), a desktop computer, or acomputerized workstation.

The mobile computing device 710 can include various visual, auditory,and tactile user-output mechanisms. An example visual output mechanismis display device 712, which can visually display video, graphics,images, and text that combine to provide a visible user interface. Forexample, the display device 712 can be a 3.7 inch AMOLED screen. Othervisual output mechanisms can include LED status lights (e.g., a lightthat blinks when a voicemail has been received).

An example tactile output mechanism is a small electric motor that isconnected to an unbalanced weight to provide a vibrating alert (e.g., tovibrate in order to alert a user of an incoming telephone call orconfirm user contact with the touchscreen 712). Further, the mobilecomputing device 710 can include one or more speakers 720 that convertan electrical signal into sound, for example, music, an audible alert,or voice of an individual in a telephone call.

An example mechanism for receiving user-input includes keyboard 714,which can be a full qwerty keyboard or a traditional keypad thatincludes keys for the digits ‘0-9’, ‘*’, and ‘#.’ The keyboard 714receives input when a user physically contacts or depresses a keyboardkey. User manipulation of a trackball 716 or interaction with a trackpadenables the user to supply directional and rate of rotation informationto the mobile computing device 710 (e.g., to manipulate a position of acursor on the display device 712).

The mobile computing device 710 can be able to determine a position ofphysical contact with the touchscreen display device 712 (e.g., aposition of contact by a finger or a stylus). Using the touchscreen 712,various “virtual” input mechanisms can be produced, where a userinteracts with a graphical user interface element depicted on thetouchscreen 712 by contacting the graphical user interface element. Anexample of a “virtual” input mechanism is a “software keyboard,” where akeyboard is displayed on the touchscreen and a user selects keys bypressing a region of the touchscreen 712 that corresponds to each key.

The mobile computing device 710 can include mechanical or touchsensitive buttons 718 a-d. Additionally, the mobile computing device caninclude buttons for adjusting volume output by the one or more speakers720, and a button for turning the mobile computing device on or off. Amicrophone 722 allows the mobile computing device 710 to convert audiblesounds into an electrical signal that can be digitally encoded andstored in computer-readable memory, or transmitted to another computingdevice. The mobile computing device 710 can also include a digitalcompass, an accelerometer, proximity sensors, and ambient light sensors.

An operating system can provide an interface between the mobilecomputing device's hardware (e.g., the input/output mechanisms and aprocessor executing instructions retrieved from computer-readablemedium) and software. The operating system can provide a platform forthe execution of application programs that facilitate interactionbetween the computing device and a user.

The mobile computing device 710 can present a graphical user interfacewith the touchscreen 712. A graphical user interface is a collection ofone or more graphical interface elements and can be static (e.g., thedisplay appears to remain the same over a period of time), or can bedynamic (e.g., the graphical user interface includes graphical interfaceelements that animate without user input).

A graphical interface element can be text, lines, shapes, images, orcombinations thereof. For example, a graphical interface element can bean icon that is displayed on the desktop and the icon's associated text.In some examples, a graphical interface element is selectable withuser-input. For example, a user can select a graphical interface elementby pressing a region of the touchscreen that corresponds to a display ofthe graphical interface element. In some examples, the user canmanipulate a trackball to highlight a single graphical interface elementas having focus. User selection of a graphical interface element caninvoke a pre-defined action by the mobile computing device. In someexamples, selectable graphical interface elements further oralternatively correspond to a button on the keyboard 704. User selectionof the button can invoke the pre-defined action.

In some examples, the operating system provides a “desktop” userinterface that is displayed upon turning on the mobile computing device710, activating the mobile computing device 710 from a sleep state, upon“unlocking” the mobile computing device 710, or upon receiving userselection of the “home” button 718 c. The desktop graphical interfacecan display several icons that, when selected with user-input, invokecorresponding application programs. An invoked application program canpresent a graphical interface that replaces the desktop graphicalinterface until the application program terminates or is hidden fromview.

User-input can manipulate a sequence of mobile computing device 710operations. For example, a single-action user input (e.g., a single tapof the touchscreen, swipe across the touchscreen, contact with a button,or combination of these at a same time) can invoke an operation thatchanges a display of the user interface. Without the user-input, theuser interface can not have changed at a particular time. For example, amulti-touch user input with the touchscreen 712 can invoke a mappingapplication to “zoom-in” on a location, even though the mappingapplication can have by default zoomed-in after several seconds.

The desktop graphical interface can also display “widgets.” A widget isone or more graphical interface elements that are associated with anapplication program that has been executed, and that display on thedesktop content controlled by the executing application program. Awidget's application program can start with the mobile telephone.Further, a widget can not take focus of the full display. Instead, awidget can only “own” a small portion of the desktop, displaying contentand receiving touchscreen user-input within the portion of the desktop.

The mobile computing device 710 can include one or morelocation-identification mechanisms. A location-identification mechanismcan include a collection of hardware and software that provides theoperating system and application programs an estimate of the mobiletelephone's geographical position. A location-identification mechanismcan employ satellite-based positioning techniques, base stationtransmitting antenna identification, multiple base stationtriangulation, internet access point IP location determinations,inferential identification of a user's position based on search enginequeries, and user-supplied identification of location (e.g., by“checking in” to a location).

The mobile computing device 710 can include other application modulesand hardware. A call handling unit can receive an indication of anincoming telephone call and provide a user capabilities to answer theincoming telephone call. A media player can allow a user to listen tomusic or play movies that are stored in local memory of the mobilecomputing device 710. The mobile telephone 710 can include a digitalcamera sensor, and corresponding image and video capture and editingsoftware. An internet browser can enable the user to view content from aweb page by typing in an addresses corresponding to the web page orselecting a link to the web page.

The mobile computing device 710 can include an antenna to wirelesslycommunicate information with the base station 740. The base station 740can be one of many base stations in a collection of base stations (e.g.,a mobile telephone cellular network) that enables the mobile computingdevice 710 to maintain communication with a network 750 as the mobilecomputing device is geographically moved. The computing device 710 canalternatively or additionally communicate with the network 750 through aWi-Fi router or a wired connection (e.g., Ethernet, USB, or FIREWIRE).The computing device 710 can also wirelessly communicate with othercomputing devices using BLUETOOTH protocols, or can employ an ad-hocwireless network.

A service provider that operates the network of base stations canconnect the mobile computing device 710 to the network 750 to enablecommunication between the mobile computing device 710 and othercomputerized devices that provide services 760. Although the services760 can be provided over different networks (e.g., the serviceprovider's internal network, the Public Switched Telephone Network, andthe Internet), network 750 is illustrated as a single network. Theservice provider can operate a server system 752 that routes informationpackets and voice data between the mobile computing device 710 andcomputing devices associated with the services 760.

The network 750 can connect the mobile computing device 710 to thePublic Switched Telephone Network (PSTN) 762 in order to establish voiceor fax communication between the mobile computing device 710 and anothercomputing device. For example, the service provider server system 752can receive an indication from the PSTN 762 of an incoming call for themobile computing device 710. Conversely, the mobile computing device 710can send a communication to the service provider server system 752initiating a telephone call with a telephone number that is associatedwith a device accessible through the PSTN 762.

The network 750 can connect the mobile computing device 710 with a Voiceover Internet Protocol (VoIP) service 764 that routes voicecommunications over an IP network, as opposed to the PSTN. For example,a user of the mobile computing device 710 can invoke a VoIP applicationand initiate a call using the program. The service provider serversystem 752 can forward voice data from the call to a VoIP service, whichcan route the call over the internet to a corresponding computingdevice, potentially using the PSTN for a final leg of the connection.

An application store 766 can provide a user of the mobile computingdevice 710 the ability to browse a list of remotely stored applicationprograms that the user can download over the network 750 and install onthe mobile computing device 710. The application store 766 can serve asa repository of applications developed by third-party applicationdevelopers. An application program that is installed on the mobilecomputing device 710 can be able to communicate over the network 750with server systems that are designated for the application program. Forexample, a VoIP application program can be downloaded from theApplication Store 766, enabling the user to communicate with the VoIPservice 764.

The mobile computing device 710 can access content on the internet 768through network 750. For example, a user of the mobile computing device710 can invoke a web browser application that requests data from remotecomputing devices that are accessible at designated universal resourcelocations. In various examples, some of the services 760 are accessibleover the internet.

The mobile computing device can communicate with a personal computer770. For example, the personal computer 770 can be the home computer fora user of the mobile computing device 710. Thus, the user can be able tostream media from his personal computer 770. The user can also view thefile structure of his personal computer 770, and transmit selecteddocuments between the computerized devices.

A voice recognition service 772 can receive voice communication datarecorded with the mobile computing device's microphone 722, andtranslate the voice communication into corresponding textual data. Insome examples, the translated text is provided to a search engine as aweb query, and responsive search engine search results are transmittedto the mobile computing device 710.

The mobile computing device 710 can communicate with a social network774. The social network can include numerous members, some of which haveagreed to be related as acquaintances. Application programs on themobile computing device 710 can access the social network 774 toretrieve information based on the acquaintances of the user of themobile computing device. For example, an “address book” applicationprogram can retrieve telephone numbers for the user's acquaintances. Invarious examples, content can be delivered to the mobile computingdevice 710 based on social network distances from the user to othermembers. For example, advertisement and news article content can beselected for the user based on a level of interaction with such contentby members that are “close” to the user (e.g., members that are“friends” or “friends of friends”).

The mobile computing device 710 can access a personal set of contacts776 through network 750. Each contact can identify an individual andinclude information about that individual (e.g., a phone number, anemail address, and a birthday). Because the set of contacts is hostedremotely to the mobile computing device 710, the user can access andmaintain the contacts 776 across several devices as a common set ofcontacts.

The mobile computing device 710 can access cloud-based applicationprograms 778. Cloud-computing provides application programs (e.g., aword processor or an email program) that are hosted remotely from themobile computing device 710, and can be accessed by the device 710 usinga web browser or a dedicated program. Example cloud-based applicationprograms include GOOGLE DOCS word processor and spreadsheet service,GOOGLE GMAIL webmail service, and PICASA picture manager.

Mapping service 780 can provide the mobile computing device 710 withstreet maps, route planning information, and satellite images. Themapping service 780 can also receive queries and returnlocation-specific results. For example, the mobile computing device 710can send an estimated location of the mobile computing device and auser-entered query for “pizza places” to the mapping service 780. Themapping service 780 can return a street map with “markers” superimposedon the map that identify geographical locations of nearby “pizzaplaces.”

Turn-by-turn service 782 can provide the mobile computing device 710with turn-by-turn directions to a user-supplied destination. Forexample, the turn-by-turn service 782 can stream to device 710 astreet-level view of an estimated location of the device, along withdata for providing audio commands and superimposing arrows that direct auser of the device 710 to the destination.

Various forms of streaming media 784 can be requested by the mobilecomputing device 710. For example, computing device 710 can request astream for a pre-recorded video file, a live television program, or alive radio program. Example services that provide streaming mediainclude YOUTUBE and PANDORA.

A micro-blogging service 786 can receive from the mobile computingdevice 710 a user-input post that does not identify recipients of thepost. The micro-blogging service 786 can disseminate the post to othermembers of the micro-blogging service 786 that agreed to subscribe tothe user.

A search engine 788 can receive user-entered textual or verbal queriesfrom the mobile computing device 710, determine a set ofinternet-accessible documents that are responsive to the query, andprovide to the device 710 information to display a list of searchresults for the responsive documents. In examples where a verbal queryis received, the voice recognition service 772 can translate thereceived audio into a textual query that is sent to the search engine.

These and other services can be implemented in a server system 790. Aserver system can be a combination of hardware and software thatprovides a service or a set of services. For example, a set ofphysically separate and networked computerized devices can operatetogether as a logical server system unit to handle the operationsnecessary to offer a service to hundreds of individual computingdevices.

In various implementations, operations that are performed “in response”to another operation (e.g., a determination or an identification) arenot performed if the prior operation is unsuccessful (e.g., if thedetermination was not performed). Features in this document that aredescribed with conditional language can describe implementations thatare optional. In some examples, “transmitting” from a first device to asecond device includes the first device placing data into a network, butcan not include the second device receiving the data. Conversely,“receiving” from a first device can include receiving the data from anetwork, but can not include the first device transmitting the data.

FIG. 8 is a block diagram of computing devices 800, 850 that can be usedto implement the systems and methods described in this document, aseither a client or as a server or plurality of servers. Computing device800 is intended to represent various forms of digital computers, such aslaptops, desktops, workstations, personal digital assistants, servers,blade servers, mainframes, and other appropriate computers. Computingdevice 850 is intended to represent various forms of mobile devices,such as personal digital assistants, cellular telephones, smartphones,and other similar computing devices. Additionally computing device 800or 850 can include Universal Serial Bus (USB) flash drives. The USBflash drives can store operating systems and other applications. The USBflash drives can include input/output components, such as a wirelesstransmitter or USB connector that can be inserted into a USB port ofanother computing device. The components shown here, their connectionsand relationships, and their functions, are meant to be exemplary only,and are not meant to limit implementations described and/or claimed inthis document.

Computing device 800 includes a processor 802, memory 804, a storagedevice 806, a high-speed interface 808 connecting to memory 804 andhigh-speed expansion ports 810, and a low speed interface 812 connectingto low speed bus 814 and storage device 806. Each of the components 802,804, 806, 808, 810, and 812, are interconnected using various busses,and can be mounted on a common motherboard or in other manners asappropriate. The processor 802 can process instructions for executionwithin the computing device 800, including instructions stored in thememory 804 or on the storage device 806 to display graphical informationfor a GUI on an external input/output device, such as display 816coupled to high speed interface 808. In other implementations, multipleprocessors and/or multiple buses can be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices800 can be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 804 stores information within the computing device 800. Inone implementation, the memory 804 is a volatile memory unit or units.In another implementation, the memory 804 is a non-volatile memory unitor units. The memory 804 can also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 806 is capable of providing mass storage for thecomputing device 800. In one implementation, the storage device 806 canbe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product can also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 804, the storage device 806,or memory on processor 802.

The high speed controller 808 manages bandwidth-intensive operations forthe computing device 800, while the low speed controller 812 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 808 iscoupled to memory 804, display 816 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 810, which can acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 812 is coupled to storage device 806 and low-speed expansionport 814. The low-speed expansion port, which can include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)can be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 800 can be implemented in a number of differentforms, as shown in the figure. For example, it can be implemented as astandard server 820, or multiple times in a group of such servers. Itcan also be implemented as part of a rack server system 824. Inaddition, it can be implemented in a personal computer such as a laptopcomputer 822. Alternatively, components from computing device 800 can becombined with other components in a mobile device (not shown), such asdevice 850. Each of such devices can contain one or more of computingdevice 800, 850, and an entire system can be made up of multiplecomputing devices 800, 850 communicating with each other.

Computing device 850 includes a processor 852, memory 864, aninput/output device such as a display 854, a communication interface866, and a transceiver 868, among other components. The device 850 canalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 850, 852,864, 854, 866, and 868, are interconnected using various buses, andseveral of the components can be mounted on a common motherboard or inother manners as appropriate.

The processor 852 can execute instructions within the computing device850, including instructions stored in the memory 864. The processor canbe implemented as a chipset of chips that include separate and multipleanalog and digital processors. Additionally, the processor can beimplemented using any of a number of architectures. For example, theprocessor 410 can be a CISC (Complex Instruction Set Computers)processor, a RISC (Reduced Instruction Set Computer) processor, or aMISC (Minimal Instruction Set Computer) processor. The processor canprovide, for example, for coordination of the other components of thedevice 850, such as control of user interfaces, applications run bydevice 850, and wireless communication by device 850.

Processor 852 can communicate with a user through control interface 858and display interface 856 coupled to a display 854. The display 854 canbe, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display)display or an OLED (Organic Light Emitting Diode) display, or otherappropriate display technology. The display interface 856 can compriseappropriate circuitry for driving the display 854 to present graphicaland other information to a user. The control interface 858 can receivecommands from a user and convert them for submission to the processor852. In addition, an external interface 862 can be provide incommunication with processor 852, so as to enable near areacommunication of device 850 with other devices. External interface 862can provide, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces can also be used.

The memory 864 stores information within the computing device 850. Thememory 864 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 874 can also be provided andconnected to device 850 through expansion interface 872, which caninclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 874 can provide extra storage space fordevice 850, or can also store applications or other information fordevice 850. Specifically, expansion memory 874 can include instructionsto carry out or supplement the processes described above, and caninclude secure information also. Thus, for example, expansion memory 874can be provide as a security module for device 850, and can beprogrammed with instructions that permit secure use of device 850. Inaddition, secure applications can be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory can include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 864, expansionmemory 874, or memory on processor 852 that can be received, forexample, over transceiver 868 or external interface 862.

Device 850 can communicate wirelessly through communication interface866, which can include digital signal processing circuitry wherenecessary. Communication interface 866 can provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication can occur, for example, through radio-frequencytransceiver 868. In addition, short-range communication can occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 870 canprovide additional navigation- and location-related wireless data todevice 850, which can be used as appropriate by applications running ondevice 850.

Device 850 can also communicate audibly using audio codec 860, which canreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 860 can likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 850. Suchsound can include sound from voice telephone calls, can include recordedsound (e.g., voice messages, music files, etc.) and can also includesound generated by applications operating on device 850.

The computing device 850 can be implemented in a number of differentforms, as shown in the figure. For example, it can be implemented as acellular telephone 880. It can also be implemented as part of asmartphone 882, personal digital assistant, or other similar mobiledevice.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichcan be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), peer-to-peernetworks (having ad-hoc or static members), grid computinginfrastructures, and the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Although a few implementations have been described in detail above,other modifications are possible. Moreover, other mechanisms forperforming the systems and methods described in this document can beused. In addition, the logic flows depicted in the figures do notrequire the particular order shown, or sequential order, to achievedesirable results. Other steps can be provided, or steps can beeliminated, from the described flows, and other components can be addedto, or removed from, the described systems. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A method for displaying geographic search resultson digital maps, the method comprising: receiving, by the one or moreprocessors from a server system, (i) a response to a first query relatedto a geographic area and (ii) a plurality of search results responsiveto a second query related to the geographic area; providing a digitalmap of the geographic area via a user interface; providing, by the oneor more processors, focus to the first query to illustrate the responseon the digital map, the response defining a geographic context;identifying, by the one or more processors, a subset of the plurality ofsearch results based on a relationship to the geographic context; andvisually emphasizing, on the digital map, the search results in theidentified subset relative to the rest of the plurality of searchresults.
 2. The method of claim 1, wherein the response to the firstquery specifies a navigation route.
 3. The method of claim 2, whereineach of the plurality of search results corresponds to a respectivelocation within the geographic area, and wherein identifying the subsetof the plurality of search results including selecting search resultscorresponding to locations within a certain distance of the navigationroute.
 4. The method of claim 1, wherein the plurality of search resultsis a first plurality of search results and the subset of the pluralityof search results is a first subset, the method further comprising:receiving, by the one or more processors from the server system, asecond plurality of search results responsive to a third query relatedto the geographic area; identifying, by the one or more processors, asecond subset of the second plurality of search results based on arelationship to the geographic context; and visually emphasizing, on thedigital map, the search results in the identified second subset relativeto the rest of the second plurality of search results.
 5. The method ofclaim 4, wherein identifying the second subset is further based ondistances between locations corresponding to the first plurality ofsearch results and locations corresponding to the second plurality ofsearch results.
 6. The method of claim 1, wherein providing the focus tothe first query is in response to receiving a selection of the firstquery via the user interface.
 7. The method of claim 6, furthercomprising: providing, via the user interface, respective user interfaceelements for individually selecting the first query and the secondquery.
 8. A method for displaying geographic search results on digitalmaps, the method comprising: receiving, by one or more processors, arespective set of search results for each of a plurality of distinctsearch queries related to a geographic area, each of the sets of searchresults defining a respective geographic context; generating, for eachof the sets of search results by the one or more processors, arespective layer of visual indicators overlaid on a geographic map in asingle display, wherein each of the visual indicators appears at alocation corresponding to a respective search result; receiving, by theone or more processors from a user interface, a selection of one of thelayers of visual indicators; in response to receiving the selection, (i)identifying, within the set of search results corresponding to theselected layer, a subset of search results based on a relationship tothe geographic contexts of the remaining sets of search results, and(ii) visually emphasizing, on the digital map, the search results in theidentified subset relative to the rest of the search results within theset corresponding to the selected layer.
 9. The method of claim 8,wherein identifying the subset of search results based on therelationship to the geographic contexts of the remaining sets of searchresults includes determining distances between search resultscorresponding to different queries.
 10. The method of claim 9, whereinthe plurality of distinct search queries includes a query for a firsttype of a business in the geographic area and a query for a second typeof a business in the geographic area, and wherein determining distancesbetween search results corresponding to different queries includesdetermining distances between business of the first type and businessesof the second type.
 11. The method of claim 8, further comprisingproviding interactive user interface elements for individually selectinglayers of visual indicators, wherein receiving the selection of one ofthe layers includes receiving an indication that a user activated one ofthe interactive user interface elements.
 12. The method of claim 8,wherein visually emphasizing the search results in the identified subsetincludes varying one or more of (i) shade, (ii) size, or (iii) style.13. A method for displaying geographic search results on digital maps,the method comprising: receiving, by one or more processors from aserver system, (i) a first set of one or more search results responsiveto a first geographic query related to a geographic area and (ii) asecond set of one or more search results responsive to a secondgeographic query related to the geographic area, subsequently toreceiving the first set of search results; displaying visual indicatorscorresponding to the first set on a digital map of the geographic area,determining, by the one more processors, whether the first geographicquery and the second geographic query are ambiguous, wherein anunambiguous query identifies a single geographic context and anambiguous query does not identify a single geographic context; inresponse to determining that each of the first geographic query and thesecond geographic query is ambiguous: (i) removing the visual indicatorscorresponding to the first set from the digital map, and (ii) displayingvisual indicators corresponding only to the second set on the digitalmap; and in response to determining that at least one of the firstgeographic query and the second geographic query is unambiguous:displaying, on the digital map, visual indicators corresponding to atleast a subset of the first set and at least a subset of the second set.14. The method of claim 13, wherein determining whether a geographicquery is ambiguous includes determining how many visual indicators areto be displayed in response to the geographic query.
 15. The method ofclaim 13, further comprising providing, via the user interface, a visualindication of whether the geographic query is ambiguous.
 16. The methodof claim 13, wherein the first geographic query is an ambiguous queryfor a certain type of business, and the second geographic query is anunambiguous query for a specific geographic location.
 17. The method ofclaim 13, wherein the first geographic query is an ambiguous query for acertain type of business, and the second geographic query is anunambiguous query for a navigation route.
 18. The method of claim 13,wherein the first geographic query is an ambiguous query for a firsttype of business, and the second geographic query is an ambiguous queryfor a second type of business.
 19. The method of claim 13, wherein thefirst geographic query is an unambiguous query related to a geographiclocation, and the second geographic query is an unambiguous query for anavigation route.
 20. The method of claim 17, further comprising:modifying the navigation route in view of the first geographic query.